<!-- 
    对象都会有有一个属性__proto__指向构造函数里面的prototype原型对象，之所以我们对象
    可以使用构造函数prototype原型对象的属性和方法，就是因为对象有_proto_原型的存在
 -->

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>

        function Star(uname, age) {
            this.uname = uname;
            this.age = age;
            // this.sing = function () {
            //     console.log('我会唱歌');
            // }
        }
        Star.prototype.sing = function () {  //构造函数的对象里面添加这个方法
            console.log('我会跳舞');

        }
        var ldh = new Star('刘德华', 23);
        ldh.sing();  //对象上系统添加一个__proto__，指向构造函数的原型对象prototype
        console.log(ldh.__proto__ === Star.prototype); //原型等价
        //方法的查找规则：首先看ldh对象身上是否有sing方法，如果有就执行这个对象上的sing
        //如果没有sing这个方法，因为有_proto_的存在，就去构造函数原型对象prototype身上去查找sing 这个方法






    </script>
</body>

</html>